//类型检查器

interface IPerson1{
    name:string;
    age:number;
}

function personPrint1(p:IPerson1){
    console.log(`${p.name}:${p.age}`);
}

//作为对象类型的形状描述
let p11:IPerson1={name:'张三',age:20};
personPrint1(p11);

//let p12 : IPerson1={name:''};
//let p13:IPerson1={name:'',age:10,gender:'男'};

//作为函数形参的约束：属性不能少，可以多，不对参数的顺序进行检查
let p12={name:'李四'};
//personPrint1(p12);

let p13={name:'王五',age:10};
personPrint1(p13);

//实参中的属性比形参属性多
let p14={name:'赵六',age:20,gender:'男'};
personPrint1(p14);

//实参中的属性顺序与形参的属性顺序不一致
let p15={age:20,name:'陈七'};
personPrint1(p15);